home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Zodiac 50 Game Pack 2
/
Zodiac 50 Game Pack 2.iso
/
abuse
/
lisp
/
teleport.lsp
< prev
next >
Wrap
Lisp/Scheme
|
1995-08-31
|
2KB
|
71 lines
;; Copyright 1995 Crack dot Com, All Rights reserved
;; See licencing information for more details on usage rights
(defun other_door_opening ()
(if (eq (total_objects) 0)
nil
(with_object (get_object 0)
(if (eq (otype) TP_DOOR)
(if (eq is_opening 0)
(if (and (< (distx) 100) (< (disty) 80))
T
nil)
T)
nil))))
(defun open_door ()
(setq is_opening 1)
(if (eq (current_frame) 4)
(setq is_opening 0)
(progn
(if (eq (current_frame) 0)
(play_sound DOOR_UP 127 (x) (y)))
(next_picture))))
(defun close_door ()
(setq is_opening 0)
(if (eq (current_frame) 0)
nil
(progn
(if (eq (current_frame) 4)
(play_sound DOOR_DOWN 127 (x) (y)))
(set_current_frame (- (current_frame) 1)))))
(defun tpd_ai () ;; teleporting door ai
(if (or (and (< (distx) 100) (< (disty) 80))
(other_door_opening))
(open_door)
(close_door))
(let ((player (bg)))
(if (has_object player)
(if (not (with_object player (pressing_action_key)))
(remove_object player))
(if (and (< (distx) 20) (< (disty) 30) (with_object player (pressing_action_key))
(> (total_objects) 0))
(let ((otherx (with_object (get_object 0) (x)))
(othery (with_object (get_object 0) (y))))
(with_object (get_object 0) (link_object player))
(with_object player (progn
(set_x otherx)
(set_y othery)))))))
T)
(defun tp_door_cons () (set_xvel -1))
(defun tp_door_draw () (set_ambient_light (bg) (xvel)) (draw))
(def_char TP_DOOR
(range 0 0)
(vars is_opening)
(funs (ai_fun tpd_ai)
(constructor tp_door_cons)
(reload_fun lower_reload)
(draw_fun tp_door_draw))
(fields ("xvel" "ambient setting"))
(states "art/door.spe" (stopped (seq "door" 1 5))))